decomposition of functions